package com.cn.jinl.api;

import com.cn.jinl.domain.InventoryVo;
import com.cn.jinl.domain.Order;
import com.cn.jinl.domain.ProductStorageOutRelate;
import com.cn.jinl.utils.QueryForm;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface IOrderService {

    List<Order> getOrderList(QueryForm queryForm)throws Exception;

    List<String> getOrderGrades()throws Exception;

    List<Order> getOrderOutRelatesByParam(QueryForm queryForm)throws Exception;

    String addBatchOrder(List<Order> orders)throws Exception;

    String updateOrder(Order order)throws Exception;

    String updateOrderProductStatusByIds(List<String> orderIds)throws Exception;

    String updateSureOrder(Order order)throws Exception;

    String updateCompleteOrder(String id)throws Exception;

    String updateSendNeedOrder(List<Order> orders)throws Exception;

    String updateOrderPC(List<String> ids)throws Exception;
    String updateOrderProduceComplete(String planId)throws Exception;

    String deleteOrders(String id)throws Exception;

    Map<String,Integer> getOrderNum()throws Exception;

    Map<String,Integer> getOrderPlanNum()throws Exception;
    Map<String,Integer> getFirstOrderPlanNum()throws Exception;

    Map<String,String> getOrderIdMap()throws Exception;

    Map<String,List<Integer>> getOrderTypeCount()throws Exception;

    String updateOrderCompletePlanStatus(String planId)throws Exception;

    Map<String,Integer> getYearFirstPageOrderInfo()throws Exception;

    Map<String,Object> getFirstPageOrderInfo()throws Exception;

    List<Order> getFirstPageOrderInfoList()throws Exception;

    List<Order> getNameByQuery(String queryString);

    String cancelOrder(QueryForm queryForm)throws Exception;

    List<Order> getInventory(QueryForm queryForm)throws Exception;

    Map<String, Object> getAllTypesPriceList(QueryForm queryForm)throws Exception;

    Map<String, Object> OrderAndSalesRanking(QueryForm queryForm)throws Exception;

    Map<String, Object> customerDelivery(QueryForm queryForm)throws Exception;

    Map<String, Object> getAllTypesNumList(QueryForm queryForm)throws Exception;

    Map<String, Object> customerOrder(QueryForm queryForm)throws Exception;

    void exportAllTypesNumList(QueryForm queryForm, HttpServletResponse response)throws Exception;

    void exportAllTypesPriceList(QueryForm queryForm, HttpServletResponse response)throws Exception;

    void exportCustomerDelivery(QueryForm queryForm, HttpServletResponse response)throws Exception;

    void exportCustomerOrder(QueryForm queryForm, HttpServletResponse response)throws Exception;

    void exportOrderAndSalesRanking(QueryForm queryForm, HttpServletResponse response)throws Exception;

    List<InventoryVo> getCurrentInventory(QueryForm queryForm)throws Exception;

    void exportInventoryInfo(QueryForm queryForm, HttpServletResponse response)throws Exception;

    List<ProductStorageOutRelate> getOrderGradesByApp(QueryForm queryForm)throws Exception;

    String balancedInventory()throws Exception;


    List<Order> getOrderCount(QueryForm queryForm)throws Exception;
}
